#!/bin/bash
# ******************************************************
# Author       : kklinux
# Last modified: 2019-07-28 22:26
# Email        : kklinux@126.com
# Filename     : myclik.sh
# Description  : 
# ******************************************************
#判断是否安装mycli
function myclied() {
mycliwj="/usr/bin/mycli"
if [ ! -f "$mycliwj" ]
then
	echo -e  "\e[31mmycli未安装，开始安装\e[0m"
else
	echo -e "\e[31mmycli已安装，3s后显示mycli提示\e[0m"
	sleep 3s
echo -e "\e[35m
用法：mycli [OPTIONS] [数据库]

  具有自动完成和语法突出显示的MySQL终端客户端。

  例子：
     -  mycli my_database
     -  mycli -u my_user -h my_host.com my_database
     -  mycli mysql：//my_user@my_host.com：3306 / my_database

选项：
  -h， -  host TEXT数据库的主机地址。
  -P， -  port INTEGER用于连接的端口号。荣誉
                                $ MYSQL_TCP_PORT。
  -u， -  user TEXT用于连接数据库的用户名。
  -S， -  socket TEXT用于连接的套接字文件。
  -p， -  password TEXT用于连接数据库的密码。
  --pass TEXT用于连接数据库的密码。
  --ssh-user TEXT用于连接ssh服务器的用户名。
  --ssh-host TEXT连接到ssh服务器的主机名。
  --ssh-port INTEGER用于连接ssh服务器的端口。
  --ssh-password TEXT用于连接ssh服务器的密码。
  --ssh-key-filename TEXT的私钥文件名（标识文件）
                                ssh连接。
  --pEM格式的-ssl-ca PATH CA文件。
  --ssl-capath TEXT CA目录。
  --ssp-cert PATH X509证书，采用PEM格式。
  --PEM格式的-ssl-key PATH X509密钥。
  --ssl-cipher TEXT要使用的SSL密码。
  --ssl-verify-server-cert在其证书中验证服务器的“公共名称”
                                对连接时使用的主机名。这个
                                默认情况下禁用选项。
  -V， -  version输出mycli的版本。
  -v， -  verbose详细输出。
  -D， - 数据库TEXT要使用的数据库。
  -d， -  dsn TEXT使用配置到[alias_dsn]中的DSN
                                myclirc文件的一部分。
  --list-dsn配置到[alias_dsn]中的DSN列表
                                myclirc文件的一部分。
  -R， - 提示TEXT提示格式（默认值：“\ t \ u @ \ h：\ d>”）。
  -l， -  logfile FILENAME将每个查询及其结果记录到文件中。
  --defaults-group-suffix TEXT读取指定的MySQL配置组
                                后缀。
  --defaults-file PATH只读取给定文件中的MySQL选项。
  --myclirc PATH myclirc文件的位置。
  --auto-vertical-output自动切换到垂直输出模式
                                如果结果比终端宽
                                宽度。
  -t， -  table以表格格式显示批量输出。
  --csv以CSV格式显示批量输出。
  --warn / --no-warn在运行破坏性查询之前发出警告。
  --local-infile BOOLEAN启用/禁用LOAD DATA LOCAL INFILE。
  --login-path TEXT从登录文件中读取此路径。
  -e， -  execute TEXT执行命令并退出。
  --help显示此消息并退出。
\e[0m"
	delfile
exit 1
fi
}
#安装epel源
function epelyuan() {
	wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/epel//epel-release-latest-7.noarch.rpm -O /tmp/epel-release-latest-7.noarch.rpm 2>/dev/null
	yum localinstall -y /tmp/epel-release-latest-7.noarch.rpm 2>/dev/null
	
rm -rf /tmp/epel-release-latest-7.noarch.rpm
}

function delfile() {
if [ -h "$0" ]
then
	yuanfile=$(ls -dl "$0" |awk '{print $11}')
	rm -rf "$yuanfile"
fi
rm -rf "$0"
}

#安装python-pip
function phthon_pip() {
	yum install -y python-pip 2>/dev/null
}

#安装mycli
function mysqlclient() {
	pip install mycli
}

function run() {
#判断是否联网
echo -e "\e[31m判断主机是否联网\e[0m"
ping -c 2 fedoraproject.org >/dev/null 2>/dev/null
if [ $? -eq 0 ]
then
	echo -e "\e[31m主机可以联网，3s后执行脚本\e[0m"
	sleep 3s
else
	echo -e "\e[31m主机不能联网，退出脚本\e[0m"
	exit 1
fi
#判断是否安装pip
rpm -aq|grep pip|grep -v 'libpipeline'|grep python[2,3]'\-pip\-' >/dev/null
if [ $? -eq 0 ]
then
	myclied
	mysqlclient
else
	myclied
	epelyuan
	phthon_pip
	mysqlclient
fi
delfile
}

run